package com.wn.date20190806ATM;

/**
 * public boolean save(String account,double money) { //1，通过账号找到用户 //2,更新该用户的余额
 * return true; }
 * 
 * public boolean withdraw(String account,double money) { //1，通过账号找到用户
 * //2,判断该用户的余额是否够取 //如果不够，提示返回false //如果够，直接更新用户的余额 return true; }
 * 
 * public double query(String account) { return 0;
 * 
 * }
 * 
 * public boolean transfer(String from,String to,double money) {
 * //1，根据from判断余额是否足够 //2,如果不够，提示并返回false
 * //如果够，判断to账号是否存在：如果不存在，提示并返回false，否则，转账 return true;
 * 
 * }
 * 
 * @author song
 *
 */
public class AccountManager
{
	/**
	 * 存款
	 * 
	 * @param account
	 * @param money
	 * @return
	 */
	public boolean deposit(String account, double money)
	{
		User user = Gloabl.matchUser(account);
		if (user != null)
		{
			// 存款
			user.setBalance(user.getBalance() + money);
			return true;
		}
		// 未匹配到
		System.out.println("参数错误");
		return false;
	}

	/**
	 * 取款
	 * 
	 * @param account
	 * @param money
	 * @return
	 */
	public boolean withdraw(String account, double money)
	{
		if (money < 0)
		{
			return false;
		}
		User user = Gloabl.matchUser(account);
		if (user != null)
		{
			if (user.getBalance() > money)
			{
				// 取款
				user.setBalance(user.getBalance() - money);
				return true;
			} else
			{
				System.out.println("余额不足");
				return false;
			}
		}
		System.out.println("参数错误");
		return false;
	}

	/**
	 * 查询余额，若账户不存在，返回-1
	 * 
	 * @param account 若账户不存在，返回-1
	 * @return
	 */
	public double query(String account)
	{
		// 匹配
		User user=Gloabl.matchUser(account);
		if(user!=null)
		{
			return user.getBalance();
		}
		//
		return -1;
	}

	/**
	 * 转账
	 * 
	 * @param from
	 * @param to
	 * @param money
	 * @return
	 */
	public boolean transfer(String from, String to, double money)
	{
		if(money<0)
		{
			System.out.println("参数错误");
			return false;
		}
		User fromUser=Gloabl.matchUser(from);
		User toUser=Gloabl.matchUser(to);
		// 账户存在
		if(fromUser!=null&&toUser!=null)
		{
			if(fromUser.getBalance()>money)
			{
				// 转账
				fromUser.setBalance(fromUser.getBalance()-money);
				toUser.setBalance(toUser.getBalance()+money);
				return true;
			}else {
				System.out.println("余额不足");
				return false;
			}
		}
		else {
			System.out.println("账户错误");
			return false;
		}
	}
}
